package com.wujing.scalatrait

//自身特性
// 主要解决特质循环依赖的问题
// 限制混入该特质的类型

object TraitDemo04 {
  def main(args: Array[String]): Unit = {


  }
}
// 第一个报错
//原因 第一个的必须是同一个父类的子类
//class Console extends Logger
//class Console2 extends Exception with Logger

//Logger 就是自身类型特质
trait Logger {
  //明确告诉编译器 我就是Exception，如果没有这句话，下面的getmessage 也没有用了
  this:Exception=>
  def log(): Unit ={
    println(getMessage)
  }
}